/*******************************************************************************
  Copyright(c) 2009 Geoffrey Hausheer. All rights reserved.

  This program is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the Free
  Software Foundation; either version 2 of the License, or (at your option)
  any later version.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  more details.

  You should have received a copy of the GNU General Public License along with
  this program; if not, write to the Free Software Foundation, Inc., 59
  Temple Place - Suite 330, Boston, MA  02111-1307, USA.

  The full GNU General Public License is included in this distribution in the
  file called LICENSE.

  Contact Information: dso-tonight-at-phracturedblue-dot-com
*******************************************************************************/

package dsotonight;

import java.util.prefs.Preferences;
import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;

/**
 * The main class of the application.
 */
public class DSOTonightApp extends SingleFrameApplication {

    private Double getDoubleFromPrefs(String str, Double def) {
        Preferences prefs = Preferences.userNodeForPackage(this.getClass());
        String value = (String)prefs.get(str, def.toString());
        Double ret;
        ret = Double.parseDouble(value);
        if(ret.isNaN()) {
            return def;
        }
        return ret;
    }
    /**
     * At startup create and show the main frame of the application.
     */
    @Override protected void startup() {
        Double lonW = getDoubleFromPrefs("Longitude", 0.0);
        Double latN = getDoubleFromPrefs("Latitude", 0.0);

        show(new DSOTonightView(this, lonW, latN));
    }

    /**
     * This method is to initialize the specified window by injecting resources.
     * Windows shown in our application come fully initialized from the GUI
     * builder, so this additional configuration is not needed.
     */
    @Override protected void configureWindow(java.awt.Window root) {
    }

    /**
     * A convenient static getter for the application instance.
     * @return the instance of DSOTonightApp
     */
    public static DSOTonightApp getApplication() {
        return Application.getInstance(DSOTonightApp.class);
    }


    /**
     * Main method launching the application.
     */
    public static void main(String[] args) {
        launch(DSOTonightApp.class, args);
    }
}
